package com.ant.business.system.service;

import com.ant.business.system.entity.User;
import com.ant.business.system.entity.UserToken;
import com.ant.business.system.vo.UserVo;
import com.ant.common.utils.FastMap;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 用户tokenService接口
 *
 * @description
 * @create 2023-07-16 16:57:44
 **/
public interface UserTokenService extends IService<UserToken> {

    /**
     * 分页查询列表
     *
     * @param page  页数
     * @param limit 条数
     * @param param 参数
     * @return PageInfo
     */
    PageInfo<UserToken> getList(int page, int limit, FastMap param);

    /**
     * 查询所有列表
     *
     * @param param 参数
     */
    List<UserToken> getAllList(FastMap param);

    /**
     * 通过编号查询
     *
     * @param primaryKey id
     */
    UserToken getById(String primaryKey);

    /**
     * 新增信息
     *
     * @param userToken userToken
     */
    void saveOne(UserToken userToken);

    /**
     * 修改信息
     *
     * @param userToken userToken
     */
    void update(UserToken userToken);

    /**
     * 删除信息
     *
     * @param primaryKey id
     */
    void delete(String primaryKey);

    /**
     * 通过token查询用户信息，可用redis替换
     *
     * @param token
     * @return
     */
    UserVo getUserInfo(String token);

    /**
     * 保存token信息，可用redis替换
     *
     * @param user
     * @param token
     */
    void saveToken(User user, String token);

    /**
     * 删除token
     *
     * @param token
     */
    void deleteToken(String token);
}